From ccb90778612b30b145ca635b91f85e17fd60f3fc Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Tue, 29 Jan 2002 22:46:21 +0000 Subject: [PATCH] Call _gdk_draw_pixbuf(), thus enabling using this function for pixbufs Tue Jan 29 17:40:02 2002 Owen Taylor * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): Call _gdk_draw_pixbuf(), thus enabling using this function for pixbufs with alpha. (#68801) * gdk/gdkdraw.c (gdk_drawable_real_draw_pixbuf): Move implementation of gdk_pixbuf_render_to_drawable() to here. --- ChangeLog | 10 ++++++++++ ChangeLog.pre-2-0 | 10 ++++++++++ ChangeLog.pre-2-10 | 10 ++++++++++ ChangeLog.pre-2-2 | 10 ++++++++++ ChangeLog.pre-2-4 | 10 ++++++++++ ChangeLog.pre-2-6 | 10 ++++++++++ ChangeLog.pre-2-8 | 10 ++++++++++ gdk/gdkdraw.c | 39 ++++++++++++++++++++++++--------------- gdk/gdkpixbuf-render.c | 34 +++------------------------------- 9 files changed, 97 insertions(+), 46 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9cf3af584d..935139b74b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Tue Jan 29 17:40:02 2002 Owen Taylor + + * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): + Call _gdk_draw_pixbuf(), thus enabling using this function + for pixbufs with alpha. (#68801) + + * gdk/gdkdraw.c (gdk_drawable_real_draw_pixbuf): Move + implementation of gdk_pixbuf_render_to_drawable() + to here. + Tue Jan 29 17:16:17 2002 Owen Taylor * gtk/gtklayout.c: Patch from Jacob Berkman to fix problem diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 9cf3af584d..935139b74b 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,13 @@ +Tue Jan 29 17:40:02 2002 Owen Taylor + + * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): + Call _gdk_draw_pixbuf(), thus enabling using this function + for pixbufs with alpha. (#68801) + + * gdk/gdkdraw.c (gdk_drawable_real_draw_pixbuf): Move + implementation of gdk_pixbuf_render_to_drawable() + to here. + Tue Jan 29 17:16:17 2002 Owen Taylor * gtk/gtklayout.c: Patch from Jacob Berkman to fix problem diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 9cf3af584d..935139b74b 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,13 @@ +Tue Jan 29 17:40:02 2002 Owen Taylor + + * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): + Call _gdk_draw_pixbuf(), thus enabling using this function + for pixbufs with alpha. (#68801) + + * gdk/gdkdraw.c (gdk_drawable_real_draw_pixbuf): Move + implementation of gdk_pixbuf_render_to_drawable() + to here. + Tue Jan 29 17:16:17 2002 Owen Taylor * gtk/gtklayout.c: Patch from Jacob Berkman to fix problem diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 9cf3af584d..935139b74b 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,13 @@ +Tue Jan 29 17:40:02 2002 Owen Taylor + + * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): + Call _gdk_draw_pixbuf(), thus enabling using this function + for pixbufs with alpha. (#68801) + + * gdk/gdkdraw.c (gdk_drawable_real_draw_pixbuf): Move + implementation of gdk_pixbuf_render_to_drawable() + to here. + Tue Jan 29 17:16:17 2002 Owen Taylor * gtk/gtklayout.c: Patch from Jacob Berkman to fix problem diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 9cf3af584d..935139b74b 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,13 @@ +Tue Jan 29 17:40:02 2002 Owen Taylor + + * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): + Call _gdk_draw_pixbuf(), thus enabling using this function + for pixbufs with alpha. (#68801) + + * gdk/gdkdraw.c (gdk_drawable_real_draw_pixbuf): Move + implementation of gdk_pixbuf_render_to_drawable() + to here. + Tue Jan 29 17:16:17 2002 Owen Taylor * gtk/gtklayout.c: Patch from Jacob Berkman to fix problem diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 9cf3af584d..935139b74b 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,13 @@ +Tue Jan 29 17:40:02 2002 Owen Taylor + + * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): + Call _gdk_draw_pixbuf(), thus enabling using this function + for pixbufs with alpha. (#68801) + + * gdk/gdkdraw.c (gdk_drawable_real_draw_pixbuf): Move + implementation of gdk_pixbuf_render_to_drawable() + to here. + Tue Jan 29 17:16:17 2002 Owen Taylor * gtk/gtklayout.c: Patch from Jacob Berkman to fix problem diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 9cf3af584d..935139b74b 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,13 @@ +Tue Jan 29 17:40:02 2002 Owen Taylor + + * gdk/gdkpixbuf-render.c (gdk_pixbuf_render_to_drawable): + Call _gdk_draw_pixbuf(), thus enabling using this function + for pixbufs with alpha. (#68801) + + * gdk/gdkdraw.c (gdk_drawable_real_draw_pixbuf): Move + implementation of gdk_pixbuf_render_to_drawable() + to here. + Tue Jan 29 17:16:17 2002 Owen Taylor * gtk/gtklayout.c: Patch from Jacob Berkman to fix problem diff --git a/gdk/gdkdraw.c b/gdk/gdkdraw.c index cc1299e375..9778c879dc 100644 --- a/gdk/gdkdraw.c +++ b/gdk/gdkdraw.c @@ -1289,23 +1289,32 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable, if (composited) { - gdk_pixbuf_render_to_drawable (composited, - drawable, gc, - 0, 0, - dest_x, dest_y, - width, height, - dither, - x_dither, y_dither); + src_x = 0; + src_y = 0; + pixbuf = composited; } - else + + if (pixbuf->n_channels == 4) + { + guchar *buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 4; + + gdk_draw_rgb_32_image_dithalign (drawable, gc, + dest_x, dest_y, + width, height, + dither, + buf, pixbuf->rowstride, + x_dither, y_dither); + } + else /* n_channels == 3 */ { - gdk_pixbuf_render_to_drawable (pixbuf, - drawable, gc, - src_x, src_y, - dest_x, dest_y, - width, height, - dither, - x_dither, y_dither); + guchar *buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 3; + + gdk_draw_rgb_image_dithalign (drawable, gc, + dest_x, dest_y, + width, height, + dither, + buf, pixbuf->rowstride, + x_dither, y_dither); } out: diff --git a/gdk/gdkpixbuf-render.c b/gdk/gdkpixbuf-render.c index fdbbbb76e8..4361c75beb 100644 --- a/gdk/gdkpixbuf-render.c +++ b/gdk/gdkpixbuf-render.c @@ -174,16 +174,12 @@ gdk_pixbuf_render_to_drawable (GdkPixbuf *pixbuf, GdkRgbDither dither, int x_dither, int y_dither) { - int rowstride; - guchar *buf; - g_return_if_fail (GDK_IS_PIXBUF (pixbuf)); g_return_if_fail (pixbuf->colorspace == GDK_COLORSPACE_RGB); g_return_if_fail (pixbuf->n_channels == 3 || pixbuf->n_channels == 4); g_return_if_fail (pixbuf->bits_per_sample == 8); g_return_if_fail (drawable != NULL); - g_return_if_fail (gc != NULL); if (width == -1) width = pixbuf->width; @@ -197,33 +193,9 @@ gdk_pixbuf_render_to_drawable (GdkPixbuf *pixbuf, if (width == 0 || height == 0) return; - /* This will have to be modified once we support other image types. - */ - - if (pixbuf->n_channels == 4) - { - buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 4; - rowstride = pixbuf->rowstride; - - gdk_draw_rgb_32_image_dithalign (drawable, gc, - dest_x, dest_y, - width, height, - dither, - buf, rowstride, - x_dither, y_dither); - } - else /* n_channels == 3 */ - { - buf = pixbuf->pixels + src_y * pixbuf->rowstride + src_x * 3; - rowstride = pixbuf->rowstride; - - gdk_draw_rgb_image_dithalign (drawable, gc, - dest_x, dest_y, - width, height, - dither, - buf, rowstride, - x_dither, y_dither); - } + _gdk_draw_pixbuf (drawable, gc, pixbuf, + src_x, src_y, dest_x, dest_y, width, height, + dither, x_dither, y_dither); } -- 2.30.2